1. Field of the Invention
The present invention relates generally to Session Initiation Protocol (SIP) based applications. More particularly, the invention relates to a method, system, and computer program product for enabling media rich SIP-based applications.
2. Background Art
The Java 2 Enterprise Edition (J2EE) platform is an end-to-end architecture that provides a programming model that uses Servlets, Java Server Pages (JSPs), and Enterprise JavaBeans (EJBs) to implement and deploy business logic.
An aspect of the J2EE platform is the use of “containers” to simplify the development of business logic, with each container providing reusable components for use by application developers. For example, the EJB container handles distributed communication, threading, and transaction management. Similarly, Java Servlets simplify web development by providing infrastructure for component, communication, and session management in a web container integrated within a web server.
Session Initiation Protocol (SIP) is a signaling protocol for multimedia applications such as IP telephony applications, instant messaging, and online games, for example. Based on simple signaling, SIP enables rapid establishment of sessions over IP (Internet Protocol).
To support SIP in a J2EE platform, Java Specification Request (JSR) 116 (a Sun JCP (Java Community Process) standard) defines a Session Initiation Protocol (SIP) Servlet Application Programming Interface (API) to simplify the task of building SIP-based applications. The SIP Servlet API together with a SIP protocol stack provides a SIP Servlet container, based on which SIP-based applications can be developed in a J2EE platform.
A SIP Servlet container is integrated onto a J2EE platform in a similar way to an EJB container or a Web container, and provides basic functions enabling the development of user agents, proxies, and registrars for SIP-based applications. These basic functions allow a SIP-based application developer, for example, to create SIP sessions in a J2EE architecture. However, they are limited to SIP-based call control.
Many SIP-based applications, such as telephony for example, require SIP-based call control and media control functionality. Other SIP-based applications require advanced call control functions that cannot be afforded by the basic functions available through the basic SIP Servlet container. Thus, an improved SIP Servlet model is needed.
An improved SIP servlet model enabling fast and easy development of complex media rich SIP-based applications is needed.